Skip to content

Enable explicit API mode - #9

Open
UnknownJoe796 wants to merge 1 commit into
reactive-engine-fixesfrom
reactive-api-split
Open

Enable explicit API mode#9
UnknownJoe796 wants to merge 1 commit into
reactive-engine-fixesfrom
reactive-api-split

Conversation

@UnknownJoe796

Copy link
Copy Markdown
Contributor

Turn on kotlin { explicitApi() } and add the visibility modifiers and explicit return types it requires across the public surface. No behavior changes.

The two added imports (CompletableJob, CoroutineContext) exist only to name types that were previously inferred.

jvmTest 113 tests green; JS + iOS compile green.

Claude-Session: https://claude.ai/code/session_017UHkALCCi6UrsGba6wUGWp

@iHoonter
iHoonter self-requested a review July 28, 2026 21:28
Turn on kotlin { explicitApi() } and add the visibility modifiers and explicit
return types it requires across the public surface. No behavior changes.

Rebased onto the reactive engine fixes. The twelve files the two branches both
touched were resolved to the engine-fixes content and re-annotated from the
compiler's diagnostics, rather than merged by hand - the original commit
predates the cleanup commits, so its side of each conflict carried back code
that no longer exists (runOnceWhileDead, skipDependencyRegistration, the old
once() implementation, the throw-on-reentrancy check). ReactiveThreadCheck.kt
stays deleted.

The declarations new since the original commit are annotated to match: the
reentrancyLimit parameter is public on TypedReactiveContext and reactive(), and
`active` is public again. reentrancyLimit on Remember is a plain constructor
parameter rather than a private val, following what this commit already did to
useLastWhileLoading - both are only read in an initializer, so neither needs a
backing field. RememberSuspending's useLastWhileLoading gets the same treatment,
which the original missed.

TypedReactiveContext's bodyless `companion object` needs explicit braces once it
carries a modifier.

The two added imports (CompletableJob, CoroutineContext) exist only to name
types that were previously inferred.

allTests green on JVM (140 tests), JS, and iOS simulator.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GA6LAUN9Lpo5hyK3KVJteJ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants